A graphical user interface (GUI) that produces and drives windows on a display typically includes a window manager. The window manager is a software program or module that defines the parameters of windows and generates the windows. Additionally, the window manager acts as a go-between for user interaction with application program windows, including menu item selection. Moreover, the window manager maintains a list of menu items that are to appear in each window. The list of menu items may be maintained in a resource file managed by the window manager. The menu items make certain functions or activities available to the user. The selection of a menu item residing within a window by the user causes the window manager to prompt a particular function or activity, including operation of a particular application program.
Generally, it is desirable to integrate together windows-based application programs. If the application programs are integrated and work together, then the user is more productive and the application programs themselves become part of a bigger, more flexible, and more powerful system.
Historically, menu items have been associated with windows using either a point-to-point technique or a broadcast technique. In the point-to-point technique, which is employed by Microsoft Windows.RTM. that is commercially available from Microsoft Corporation, U.S.A., as an example, menu items are defined in resource files, and each window is programmed to read in a specific resource file. A disadvantage of this technique is that menu items are not related to windows in a generalized way so that menu items may be selectively targeted to groups of windows, such as a window that has not yet been created by an application program. Along these lines, the reciprocal case of an application program's window being able to add menu items from a new unknown source is also very difficult. Thus, integration of windows-based application programs is hampered.
More specifically, consider an application program that creates menu items which provide configuration management (CM) functionality. These menu items should appear in edit windows. The CM developer would like these menu items to appear in all windows used for editing tasks. Later, another program, a graphical editor, is developed for drawing diagrams. The CM menu items would be very useful within this graphical editor as well but, because the CM application program does not know about graphical editors, the items are not added. Unless one of the two programs knows about the other in order to provide a point-to-point connection, they cannot work together this way. Ideally, the CM tools should be able to refer to the same attribute of the window that would be valid for both text editors and graphical editors.
The broadcast technique distributes new menu items to all resident windows. As an example, the broadcast technique is employed by SoftBench.RTM., which is a collection of computer programs used for software development that is commercially available from Hewlett-Packard Company, U.S.A. However, this technique is undesirable in that it dilutes the functionality of a particular window, degrades user productivity and performance, and unnecessarily increases memory requirements. Once again, integration is also hampered.
A heretofore unaddressed need exists in the industry for providing a system and method for relating menu items to windows in a more optimal generalized manner so that menu items may be selectively targeted to groups of windows, even if an application program creating such a target window does not exist yet, and so that an application program's window is able to add menu items from a new unknown source.